#pragma once
#ifndef GRAPHICS_STAGEBUILDER_H
#define GRAPHICS_STAGEBUILDER_H
//------------------------------------------------------------------------------
/**
    @class Graphics::StageBuilder
    
    Stage builders are application-derived classes which construct a stage
    (build a hierarchy of Cells and populate them with graphics entities).
    
    (C) 2007 Radon Labs GmbH
*/
#include "core/refcounted.h"

//------------------------------------------------------------------------------
namespace Graphics
{
class Stage;

class StageBuilder : public Core::RefCounted
{
    DeclareClass(StageBuilder);
public:
    /// constructor
    StageBuilder();
    /// destructor
    virtual ~StageBuilder();

    /// setup the stage
    virtual void BuildStage(const Ptr<Stage>& stage);
};

} // namespace Graphics
//------------------------------------------------------------------------------
#endif
    